Method for automatically generating software

ABSTRACT

The invention relates to a method for automatically generating software in which the properties of an application made possible by the software are modelled in abstract form and then mechanically converted into software for this application, while the execution of the application influences a technical system optionally made up of a plurality of systems. It is proposed that at least one of the following additional elements is generated in a totally integrated multi-objective form from the modelled description of the application together with the application source code or together with the source information suitable for producing this source code, namely:  
     software for visualising and/or logging and/or remotely monitoring/operating the application and/or the technical system;  
     software for simulating the application and/or the technical system;  
     software and/or information for communicating within the application and/or with other systems and/or between split systems and  
     documentation for the user and/or the programmer.

[0001] The invention relates to a method for automatically generating software in which the properties of an application made possible by the software are modelled in abstract form and then mechanically converted into software for this application, while the implementation of the application influences a technical system optionally made up of a plurality of systems.

[0002] To increase effectiveness in the development of software, description-based processes are increasingly used. Independently of conventional programming languages, the properties of an application are modelled in abstract terms and later mechanically converted into software for the application. The advantage of these processes is the significant time saving in development based on a higher level of abstraction, and the elimination of the manual setting up of trivial codes.

[0003] For modelling applications, i.e. in order to draft the description of the application, the following methods are known, for example: object orientation (inheritance, overloading, virtualisation etc.); hierarchisation; encapsulation; modularisation; instancing; integration of conventional programming languages and mathematical models; function modelling with abstract models; generators for user interfaces and data structures and their processing.

[0004] After modelling, the application source code is automatically generated using the description of the application. Beforehand, various preprocessors and test programmes may be applied to the description of the application within the scope of preprocessing in order to recognise any logic errors, contradictions, pointer errors, dead codes, etc.

[0005] As a rule, however, generating the application source code is not enough. For example, documentation may be needed not only for the user but also for the actual programmer. It is also desirable to have software for visualising and simulating the application itself and the technical system influenced by the application, i.e. simulating the external parameters required by the application and the influences on the system produced by the application.

[0006] A disadvantage of the existing generating methods is the fact that the additional information and software belonging to the application source code is only generated in a fragmentary manner, or not at all. Consequently, manual setting up or adjustment or separate generation by the parallel use of different methods is required. Since more than just one design source is needed in these cases, the following serious disadvantages arise:

[0007] insufficient use of information and possible synergistic effects;

[0008] redundant information, leading to a high probability of inconsistencies;

[0009] a substantial overall increase in the cost of development and aftercare.

[0010] The aim of the present invention is therefore to allow all the necessary information targets to be generated effectively and completely, free from redundancies, from a central design source for a specific application software.

[0011] This aim is achieved according to the invention by a method according to claim 1. Advantageous embodiments will become apparent from the subsidiary claims and the description that follows.

[0012] In the method according to the invention, all the necessary information targets are generated in a totally integrated form from a new modelled description of the application together with the application source code (or the source information required for this), these information targets comprising at least one of the following additional elements:

[0013] software for visualising and/or logging and/or remotely monitoring/operating the application and/or the technical system;

[0014] software for simulating the application and/or the technical system and possibly counter-simulating the technical system, i.e. simulating the external influences on and interactions with the technical system;

[0015] software and/or necessary information for communicating within the application and/or with other systems and/or between split systems, i.e. between systems which are physically separated but connected by the exchange of data;

[0016] documentation for the user of the application and/or for the programmer (designer) of the application.

[0017] An important aspect is that the application source code produced according to the invention and the additional elements can run on various platforms irrespective of the platform.

[0018] To achieve an advantageous solution, the following boundary conditions must be respected:

[0019] modelling of the complete software without any redundancies;

[0020] generation of the information targets (sinks) without any adjustment;

[0021] generation of the information targets (sinks) independently of programming languages, operating systems and hardware;

[0022] supporting split and heterogeneous systems;

[0023] direct support of textual/graphic man-machine interfaces;

[0024] thoroughly object-oriented approach, e.g. in nomenclature, units, range of values etc. of data;

[0025] inclusion of further information (e.g. explanations, help text, comments) in the modelling;

[0026] multilingual modelling of the application;

[0027] easy total portability/reusability of software components.

[0028] The generating process according to the invention proceeds by the following steps:

[0029] 1. Drafting a description of the application by modelling; the basic make-up (structure) is relevant, but not the concrete expression (syntax). The description is advantageously drafted using suitable editing software (Editor).

[0030] 2. Optional mechanical preprocessing of the description of the application, e.g. preprocessing and optimisation, and the use of generally known methods for improving/ensuring the quality of the software.

[0031] 3. Multi-objective fully integrated generation of the data sinks (see additional elements mentioned above).

[0032] In the following, the structure of the description of the application will first be described.

[0033] The description of the application in the process according to the invention advantageously consists of modules fitting inside one another hierarchically, additional information and instancing tables which contain the application part of a project in full. Advantageously, modules and their additional information are rationally spread over a variety of project or library computer files. One module or one project file typically encapsulates a partial problem of the application.

[0034] A module consists in design terms of at least the following groups of definitions which are required as a minimum to provide a total definition but in reality only some of which may occur:

[0035] node definitions;

[0036] sub-module definitions;

[0037] element definitions;

[0038] man-machine interface definitions (MMI=man-machine interface);

[0039] function definitions.

[0040] Each set of definitions may contain as many (individual) definitions as desired. The function and meaning of these individual definitions are described more fully hereinafter.

[0041] The other additional information advantageously used for the description of the application contains information such as texts, images, visualisers, type definitions, etc., to which reference is made within the modules. In an advantageous embodiment this additional information is stored with the associated modules in the same project file which then forms a completely self-sufficient and reusable unit.

[0042] Finally, instancing tables may advantageously be used for the description of the application, containing information which cannot be deposited directly in the module owing to multiple instancing of the modules and which cannot be generated mechanically either. One example of this is hardware addresses.

[0043] The structure of a module for the description of the application in the software generating method according to the invention will be explained hereinafter.

[0044] Since the concrete formulation (syntax) of the definitions mentioned above may take many forms, the following description of the sets of definitions will only outline their structure and content in basic terms. All the components defined have the attributes and information required for the sinks (information targets).

[0045] Node definitions:

[0046] This definition enables the application to be distributed to physically separate hardware systems coupled by data technology (split systems). By using this definition the associated module and its sub-modules (if any) become a logically independent unit. Advantageously, a number of sinks of the same type may be generated from this (e.g. application software for the individual nodes of split hardware systems).

[0047] Attributes by way of example are: node name, information text, type of hardware (power), type of communication (address).

[0048] Sub-module definitions:

[0049] This definition allows sub-modules to be instanced (tied in).

[0050] Attributes by way of example are: module name, information text, parameters to be transmitted.

[0051] Element definitions:

[0052] By elements are meant all the data as well as hardware inputs and outputs of the module. These are assigned a type (e.g. digital, alphanumerical, selective, time, date, etc.) and a category/use (e.g. parameter, status data, measurement data, hardware inputs/outputs, timers, counters, equation data, etc.)

[0053] Hardware inputs may also have counter-simulation equations which constitute a virtual imaging of the environmental reactions in order to obtain as realistic a simulation as possible.

[0054] Elements may be put together to form structures and n-dimensional fields. Elements are added on in object-oriented fashion, i.e. they allow them to be accessed and displayed, for example, irrespective of the type and the category/use.

[0055] Attributes by way of example are: element name, information text, data type, category (use), standard value, range of values, unit, display/editing rights, hardware association, counter-simulation equations.

[0056] Man-machine interface definitions:

[0057] These all comprise MMI (man-machine interface) parts belonging to a module for the application and for the additional elements generated according to the invention (information targets, sinks). Advantageously, the MMI definition is broken down again into sub-groups, so-called surfaces, one surface containing a completed part of the MMI (e.g. parameter processing, status display, process visualisation, etc.).

[0058] The actual MMI definition may, for example, be carried out with the following commands:

[0059] text, image, line, rectangle, circle, bitmap, definition of sub-images;

[0060] show elements (as text or in graphic form), show histograms;

[0061] pages, menus, lists, toolbars (buttons);

[0062] actions (manipulation of elements, choosing options in the menus, pages, surfaces);

[0063] conditional parts of surfaces depending on elements.

[0064] Moreover, when displaying elements, the object-oriented attributes thereof such as the name, description, unit and display attributes are automatically used.

[0065] Function definitions:

[0066] The function definition of a module consists of any desired number of functions. The nature of the description may also take any form, including a mixed form, e.g. produced by conventional programming languages, abstract models, etc., and is optionally converted by external compilers.

[0067] A function typically contains a logical partial function of the module and has attributes with which the operating system of the target system can control the execution (e.g. permanent execution, time-critical/non-critical, call-up frequency, event-triggered, MMI-triggered).

[0068] Advantageously, the function definition may go back to the elements.

[0069] After this description of the modular structure the properties of an advantageous description of an application will now be explained in terms of design:

[0070] modules may be requested in parallel and/or hierarchically as desired and may pass on their properties to other modules.

[0071] The instancing of the modules is effected by means of global instancing lists, or selectively, directly in the module, in the case of single instancing.

[0072] Modules may also be modelled as self-contained units, i.e. they contain all the necessary information locally and can therefore be reused/transferred very easily.

[0073] The use of libraries is possible for modules as well as for additional information in every type of information mentioned (texts, images, visualisers, data types, functions, etc.)

[0074] Element and module attributes are treated in object-oriented manner (virtuality).

[0075] All the components of a description of an application are assigned further information, this information being sent to all the sinks.

[0076] The information from one or more modules is stored in a file. Sub-modules (if they are to be further used) and libraries are stored in separate files.

[0077] The resolution of complex applications with split and optionally heterogeneous hardware or with multiprocessor systems advantageously takes place in a central description in which the distribution of the modules is described statically or dynamically.

[0078] After a description of an application has been undertaken in accordance with the model structures mentioned above, the description of the application can be mechanically preprocessed in order to achieve optimisation, quality assurance and analysis and check for errors and contradictions. This preprocessing is largely dependent on the general syntax used and on the forms of description used within the functions. Since both can be designed as required, the software conversion of the preprocessing is not relevant here.

[0079] According to the invention, the various information targets (sinks, additional elements to the actual application source information) can now be formed mechanically or automatically using a target generator.

[0080] Since the precise construction of the sinks depends on the target system, programming language, compiler, PC platform, etc., only the properties of the sinks which form part of the invention are described. In general terms it is true of all the sinks according to the invention that they are generated directly as described below and/or the information (source code and/or tables/lists and/or binary data and/or other forms of software information) which makes it possible for them to be produced by other external systems is generated. Generation results may be:

[0081] Application data

[0082] structures for (object-oriented) management of the modules

[0083] structures for (object-oriented)management of the elements

[0084] application functions

[0085] application MMI (if present in the application)

[0086] text/graphics in multilingual form (if present in the application)

[0087] in split systems correspondingly individualised information may be generated for the individual hardware nodes.

[0088] The information generated is independent of compiler, operating system and target hardware.

[0089] PC/Web visualisation

[0090] Structures for (object-oriented) communication with the application hardware

[0091] Structures for (object-oriented) administration of the elements

[0092] visualisation MMI

[0093] text/graphics in multilingual form

[0094] PC Offline simulation

[0095] application definition (see above)

[0096] PC/web visualisation (see above, in addition to the elements for executing counter-simulation)

[0097] User documentation

[0098] list of parameters (including attributes)

[0099] list of status/measuring data

[0100] list of inputs/outputs

[0101] information on the functions of the application (if present in the description of the application)

[0102] overview of the MMI structure (if present in the application)

[0103] detailed representation of the individual parts of the MMI and information as to their operation and function (if present in the application)

[0104] Software documentation

[0105] user documentation (see above)

[0106] modular structure (links)

[0107] information on the structuring of the modules with one another

[0108] information on the module contents (including functionality)

[0109] Compared with existing software generating methods the process according to the invention has the following advantages:

[0110] There is only one software description, which is free from redundancies;

[0111] All the information targets/sinks are fully capable of being generated;

[0112] Inconsistencies are impossible within a sink and between the individual sinks;

[0113] No manual adjustment of the individual sinks is required;

[0114] Total integrated support of the man-machine interface;

[0115] High-level use of the object-oriented modelling of modules and elements, particularly within the scope of the man-machine interface.

[0116] To sum up, the work of development, documentation and aftercare in the generation of software is substantially shortened.

[0117] Some embodiments by way of example will now be described in more detail with reference to the accompanying drawings to illustrate the invention and its advantages.

[0118]FIG. 1 shows a highly simplified representation of a possible embodiment of the design flow for generating software according to the invention.

[0119]FIG. 2 shows, by way of example, the hierarchisation of the application, i.e. the structure of a description of an application by way of example which consists of a central project file and a tied-in project file.

[0120]FIG. 3 shows a soft copy by way of example which can be produced using the software generated according to the invention for visualisation or simulation.

[0121]FIG. 4 shows an example of software documentation produced by the method according to the invention shown on-screen.

[0122]FIGS. 1 and 2 diagrammatically explain, by way of example, the design flow and application hierarchisation in the generation of software according to the invention.

[0123] An example of an application will now be described in detail.

[0124] Statement of the problem:

[0125] Automatically testing the hardness of a workpiece by the penetration of a conical steel point into the testpiece in the following sequence:

[0126] 1. application of the testing force

[0127] 2. waiting while the testing time elapses

[0128] 3. reading the results of the measurement

[0129] 4. if the test is in order => sending the testpiece onwards

[0130] if the test is not in order => discarding the testpiece as a reject

[0131] 5. continuing with 1.

[0132] The following requirements apply with regard to the system of automation:

[0133] The testing force is applied by releasing a cylinder and regulating the testing force by means of the cylinder pressure (internal regulation).

[0134] The correct application of the testing force is indicated by the testing machine by a digital feedback (sensor). In the absence of a signal (after a certain length of time) the machine switches over to an error state.

[0135] The actual hardness testing is done with a separate distance measuring device which transmits the depth of penetration to the automated system in the form of an analogue signal. The application compares this with a rated value and decides between “in order” (=i.o.) or “not in order” (=n.i.o.).

[0136] The test results are made available to an external unit in the form of an i.o. or n.i.o. output.

[0137] Using an MMI inside the apparatus the parameters should be variable and the actual status of the apparatus should be indicated.

[0138] Using a serial interface an external visualisation unit should be attached which displays all the information of the MMI inside the apparatus and the force/distance pattern of a test. This software as well as software for offline simulation is generated in parallel from the same source.

[0139] The automation system has:

[0140] Hardware inputs and outputs:

[0141] starting signal (for starting a test) (digital output)

[0142] end position feedback for the application of testing force (digital input)

[0143] activation of the application of the testing force (digital output)

[0144] IO message (digital output)

[0145] NIO message (digital output)

[0146] preset cylinder pressure (analogue output)

[0147] measurement input: testing force (analogue input)

[0148] measurement input: depth of penetration (analogue input)

[0149] Parameters:

[0150] Time limit for “advance” (of the application of force until the sensor is reached) (in seconds)

[0151] testing time (in {fraction (1/10)} sec)

[0152] testing force (prescribed value in {fraction (1/10)} kN)

[0153] max. depth of penetration (in μm)

[0154] min. depth of penetration (in μm)

[0155] P component of the force PI regulator

[0156] I component of the force PI regulator

Description and Modelling of the Application

[0157] In accordance with the problem described, a solution is modelled which consists of the modules ModTest (basic control of the test procedure) and ModRegPI (PI regulator) and additional information. The ModRegPI module is of a library type and may already be present in a library or attached to one. In reality the ModTest module may also be used in larger processes as a sub-module.

[0158] Additional Information:

[0159] The following additional information is set up:

[0160] Texts: multilingual text table containing all the texts used

[0161] Images: definition of all the images/graphics required in the modules

[0162] Data types: TOffOn: selective, possible states: ON and OFF TForce: digital, in [kN], 1 decimal place, range: 0.0 . . . 99.9 TDepth: digital, in [μm], no decimal places, range: 0 . . . 2000 TPressure: digital, in [bar], 1 decimal place, range: 0.0 . . . 15.0 TSec: digital, in [s], 1 decimal place, range: 0.0 . . . 60.0 TPerc: digital, in [%], no decimal places, range: 0 . . . 200

[0163] Visualiser:

[0164] Definitions of the manner in which data/information is displayed in the MMI.

[0165] “ModTest” Module:

[0166] Sub-modules:

[0167] One instance of module ModReg. Instance name: MRegulator Elements: Start: Trigger input for starting a test Data type: TOffOn, category: dig. input End position: Feedback end position reached Data type: TOffOn, category: dig. input Cylinder: Release of testing force cylinder Data type: TOffOn, category: dig.output IO message: IO message to an external unit Data type: TOffOn, category: dig.output NIO message: NIO message to an external unit Data type: TOffOn, category: dig.output Depth of penetration: Results of measurement after test Data type: TDepth, category: analogue input Testing force: Measured testing force (actual value) Data type: TForce, category: analogue input min. depth of penetration: lower threshold for penetration Data type: TDepth, category: parameters max. depth of penetration: upper threshold for penetration Data type: TDepth, category: parameters Test period: duration of penetration Data type: TSec, category: parameters

[0168] MMI control system (two-line display):

[0169] if current state is not equal to READY (=i.e. it is being tested) top line: current depth of penetration bottom line: IO/NIO message

[0170] other (=i.e. it is not being tested) top line with main menu message bottom line: display of a line from the main menu. Here, the parameters can be viewed and changed.

[0171] MMI Visualisation system (PC under Windows):

[0172] Representation of the measured data and the test parameters in graphic form, possibly spread over several windows Functions: (here carried out as a status machine) READY status: On entry: Inactivate/activate the outputs Cylinder, IO message and NIO message. If input Start is active, go to status CYLINDER ON CYLINDER_ON status: On entry: Activate the output Cylinder, start the time If input End position is active, go to status MEASURE If time > 3 s, go to status CYLINDER ON MEASURE status: On entry: from the sub-module MRegulator activate the Release flag, start the time If (time > test period) AND (depth of penetration < min. depth of penetration), go to status TEST_NIO If (time > test period) AND (depth of penetration > max. depth of penetration), go to status TEST_NIO Otherwise, if (time > test period), go to status TEST_IO TEST_IO status: On entry: from the sub-module MRegulator inactivate the Release flag, activate the IO message output, inactivate the Cylinder output, start the time If time > 3 s, go to status READY TEST_NIO status: On entry: from the sub-module MRegulator inactivate the Release flag, activate the NIO message output, inactivate the Cylinder output, start the time If time > 3 s, go to status READY ERROR status: Not further specified “ModRegPI” Module: Sub-modules: none Elements: Release: Trigger input for starting a test Data type: TOffOn, category: dig. input Testing force: Measurement of testing force (actual value) Data type: TForce, category: analogue input Testing pressure: Measurement of testing force (actual value) Data type: TPressure, category: analogue output P component: P component of force regulation (via pressure output) Data type: TPerc, category: parameters I component: I component of force regulation (via pressure output) Data type: TPerc, category: parameters

[0173] MMI Control system:

[0174] not further specified

[0175] MMI Visualisation system:

[0176] not further specified

[0177] Functions: (e.g. as a real-time C-Code)

[0178] Rule algorithm, not further specified

[0179] Generating results:

[0180] Application code:

[0181] The source code generated in this example of an application contains the following components:

[0182] lists of the elements in which all the necessary information and attributes are deposited

[0183] classes/structures for the modules added on

[0184] structures/instances for data description

[0185] structures/instances for MMI description which are executed by an interpreter on the target hardware

[0186] various function code parts which have been partially generated from a status machine

[0187] Visualisation:

[0188] This is shown in FIG. 3 (albeit with reference to a different embodiment).

[0189] Offline simulation:

[0190] The offline simulation basically consists of the visualisation (cf. FIG. 3) and the application code compiled for a PC. The two parts are coupled internally, while the counter-simulation produces an almost realistic behaviour. Optically, the simulation corresponds substantially to the visualisation.

[0191] Documentation:

[0192] This is shown in FIG. 4 (albeit with reference to a different embodiment).

[0193]FIG. 3 (German terms and their English equivalents)

[0194] IMACS Visual Main Display

[0195] Hauptanzeige=Main Display

[0196] Resthärte=residual hardness

[0197] RO-Module=RO modules

[0198] Erstpermeat=first permeate

[0199] Temp Perm=permeate temperature

[0200] Permeat-Tank=permeate tank

[0201] Vorfl-Druck=drainage pressure

[0202] Pumpendruck=pump pressure

[0203] Konz-Druck=conc. pressure

[0204] DF Perm=permeate flow

[0205] Vordruck=supply pressure

[0206] Rohwasser Tank=untreated water tank

[0207] MeBstelle fur Verblockungsindex=measuring point for blocking index

[0208] Spülstation=rinsing station

[0209] Spüleinichtung=rinsing device

[0210] Temp. Konz.=temp. conc.

[0211] DF Konz.=concentrate flow

[0212] Konzentrat=concentrate

[0213] Eingänge=inputs

[0214] Druckschalter Permeat=pressure switch permeate

[0215] Univ. Eingang 1=univ. input 1

[0216] Univ. Eingang 2=univ. input 2

[0217] Ausgänge=outputs

[0218] Sammelstörung—collecting interference

[0219] Univ. Ausgang=univ. output

[0220] Analog-Ausgänge=analogue outputs

[0221] Ausbeute=yield

[0222] Aufnahmemodus=recording mode

[0223]FIG. 4 (in its English translation)

[0224] Software documentation—Microsoft Internet Explorer

[0225] Technical level

[0226] Module:

[0227] Technology

[0228] Technical Level

[0229] Extension Level

[0230] Additional Pumps

[0231] Measuring Ranges

[0232] Water Meter

[0233] Measuring/Calibration

[0234] Diagnosis

[0235] Chip Card

[0236] Universal I/Os

[0237] System Settings

[0238] Standard Values

[0239] Password Tech.

[0240] Password x

[0241] Explanation:

[0242] Escape key: back

[0243] Menu functions (Selection with , V and CR):

[0244] menu point extension level: displaying and editing extension level

[0245] menu point Additional pumps: call up Additional pumps menu

[0246] menu point Measuring ranges: call up Measuring ranges menu

[0247] menu point Water meter: call up Water meter menu

[0248] menu point Measuring/calibration:

[0249] put calibration

[0250] call up Measuring/calibration menu

[0251] menu point Diagnosis

[0252] put diagnosis

[0253] call up Diagnosis menu

[0254] menu point Chip card: call up Chip card menu FIG. 4 (continuation) Software documentation—Microsoft Internet Explorer LR-V08-St4 (num.) starting position V06 power stage 4 root. parameter range of values: 0-99% standard value: 75% LR-V08-St4 (num.) starting position V08 power stage 5 root. parameter range of values: 0-99% standard value: 75% winter op. (sel.) switching winter op. on/off root. parameter standard value: OFF 0 OFF switched off 1 ON switched on T-rated value (num.) rated value for crude water temperature root. parameter range of values: 10.0-30.0° C. standard value: 15.0° C. T hysteresis (num.) hysteresis temperature regulation root. parameter range of values: 0.0-5.0° C. standard value: 2.0° C. Hot clean. (sel.) Note: choice only possible if bypass root. parameter permeat valve V16 provided standard value: UO + RING 0 UO + RING UO + ring pipe 1 UO UO apparatus 2 RING ring pipe Reg-1 rated (num.) Rated value Regulator 1 Heating W1 root. parameter range of values: 10.0-95.0° C. standard value: 90.0° C. Reg-1 hyst. (num.) Hysteresis Regulator 1 Heating W1 root. parameter range of values: 0.0-20.0° C. standard value: 1.0° C. Reg-2 rated (num.) Rated value Regulator 2 Heating W1 root. parameter range of values: 10.0-95.0° C. standard value: 90.0° C. 

1. Method for automatically generating software in which the properties of an application made possible by the software are modelled in abstract form and then mechanically converted into software for this application, while the execution of the application influences a technical system optionally made up of a plurality of systems, characterised in that at least one of the following additional elements is generated in a totally integrated multi-objective form from the modelled description of the application together with the application source code or together with the source information suitable for producing this source code, namely: software for visualising and/or logging and/or remotely monitoring/operating the application and/or the technical system; software for simulating the application and/or the technical system; software and/or information for communicating within the application and/or with other systems and/or between split systems and documentation for the user and/or the programmer.
 2. Method according to claim 1, characterised in that in addition to the software for simulating the application, software for counter-simulating the technical system which is influenced by the application is also generated.
 3. Method according to claim 1, characterised in that the application is modelled by one or more modules, additional information and possible instancing tables, wherein one module advantageously contains a partial problem of the application, the additional information contains information such as text, images, visualisers and type definitions to which reference is made within the modules, and the instancing tables contain information which cannot be deposited directly in the module itself in the event of multiple instancing of the modules and which cannot be generated mechanically either, such as hardware addresses, for example.
 4. Method according to claim 3, characterised in that a module is totally defined by the following sets of definitions: node definitions for distributing the application to physically separate hardware systems coupled by data technology (split systems), sub-module definitions for instancing (tying-in) sub-modules, element definitions for combining all the data as well as hardware and communication inputs/outputs of a module, man-machine interface definitions for defining all the components required within a module for producing an interface for the user and function definitions consisting of a number of functions of a module. 